package com.miao.UserClass;

import com.miao.entity.Duck;
import org.springframework.beans.factory.support.BeanDefinitionRegistry;
import org.springframework.beans.factory.support.RootBeanDefinition;
import org.springframework.context.annotation.ImportBeanDefinitionRegistrar;
import org.springframework.core.type.AnnotationMetadata;


public class MyImportBeanDefinitionRegistrar implements ImportBeanDefinitionRegistrar {


    /**
    * Description:  手动注册 Bean
    *
     * AnnotationMetadata ---当前类的注解信息
     * BeanDefinitionRegistry --注册器
     *
    */
    @Override
    public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) {

        //如果容器中 有 Desk 和 Dog时，就手动注册一下 Duck
        Boolean flag1 = registry.containsBeanDefinition("com.smxxy.miao.beanlifecycle.Common.Desk");
        Boolean flag2 = registry.containsBeanDefinition("com.smxxy.miao.beanlifecycle.Common.Dog");
        if(flag1 && flag2){
            RootBeanDefinition beanDefinition = new RootBeanDefinition(Duck.class);
            //还能在这里 自定义Bean的其他属性的，
            registry.registerBeanDefinition("Duck",  beanDefinition);
        }
    }
}
